from flask import Flask, render_template, request, escape, abort
from mappings import const_map, get_xiang_maps, xiang_title


app = Flask(__name__, static_folder='static', static_url_path='/static')

# 四象与星座的映射
xiang_maps = get_xiang_maps()

@app.route('/', methods=["POST", "GET"])
def index():
    # 分请求方法
    # GET->返回未添加搜索后信息的页面，
    # POST->返回
    if request.method == 'GET':
        return render_template("index.html",
                               title="水象星座（天蝎座，双鱼座，巨蟹座）",
                               imag="index")
    if request.method == 'POST':
        # 获取到POST搜索的的星座数据
        constell = request.form['constell']
        # 查找搜索的数据在不在十二星座里面，提示信息
        if constell in const_map.keys():
            return render_template("index.html",
                                   title="水象星座（天蝎座，双鱼座，巨蟹座）",
                                   # 此处info为星座对应的简介
                                   info=const_map[constell],
                                   # 星座的图片名
                                   imag=constell)
        else:
            msg = f'没有找到{constell}的信息'
            return render_template("index.html",
                                   title="水象星座（天蝎座，双鱼座，巨蟹座）",
                                   info=msg,
                                   imag="index")


@app.route("/xiang/<proper>", methods=["POST", "GET"])
def xiang(proper):
    if request.method == 'GET':
        if proper in xiang_maps.keys():
            return render_template("xiang.html",
                                   imag="xiang",
                                   title=xiang_title[proper],)
        else:
            return abort(404)
    if request.method == 'POST':
        constell = request.form['constell']
        if constell in xiang_maps[proper]:
            return render_template("xiang.html",
                                   title=xiang_title[proper],
                                   info=const_map[constell],
                                   imag=constell)
        else:
            msg = f'没有找到{constell}的信息'
            return render_template("xiang.html",
                                   title=xiang_title[proper],
                                   info=msg,
                                   imag="xiang")



if __name__ == '__main__':
    app.run(debug=True)
